package jdbc;


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.util.Scanner;
/*
*
 * 实现用户注册：
 * 程序启动后要求用户顺序输入用户名、密码、昵称、年龄
 *用户名，密码，昵称不能为空，年龄必须是整数
 * 然后将该信息插入到userinfo表中
 *
 **/

public class RegDemo {
    public static void main(String[] args) throws Exception {

        UserInfo userInfo = InputUtil
                               .getInputObject(new UserInfo(),
                               "欢迎注册","注册");
        System.out.println(userInfo);

        Class.forName("com.mysql.cj.jdbc.Driver");
        Connection connection = DriverManager.getConnection(
                "jdbc:mysql://localhost:3306/tedu?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true",
                "root",
                "root"
        );
        System.out.println("成功连接数据库!");
        Statement statement = connection.createStatement();



        String sql="INSERT INTO userinfo(username,password,nickname,age) " +
                "VALUES('"+userInfo.getUsername()+"','" +userInfo.getPassword()+"','" +userInfo.getNickname()+"'," +userInfo.getAge()+")";

        //执行sql语句(之所以是int 是因为执行INSERT语句插入一条数据，返回值是1)
        int num = statement.executeUpdate(sql);
        /*
        * Statement 提供了用于执行dml语句的方法：
        * int executeUpdate(String sql)
        * 该方法执行后会返回一个int 值
        * ，表示执行dml 操作后影响了表中多条记录
        * */
        if (num>0){//判断是否插入成功
            System.out.println("插入成功!");
        }
        connection.close();//关闭连接

    }
}
